Historically, time-based block diagram modeling environments have been used to study, design, debug, and refine dynamic systems representative of many real-world systems. A dynamic system (either natural or man-made) is a system whose response at any given time is a function of its input stimuli, its current state, and the current time. In addition, discrete event system (DES) modeling environments have been developed to allow the design and simulation of event-based systems. In a DES modeling environment, a system's state transitions depend on discrete incidents called events. DES models may execute based upon the occurrence of events independent of continuous model time unlike traditional time-based modeling environments where the execution of the system is time-based.
A primary type of data component within a DES model is referred to as an “entity.” Entities are abstract representations of elements of interest within the DES model and may vary depending upon what is being modeled by the DES system. Entities are the items that pass from block to block in the DES model. For example, when modeling a digital network, an entity may represent a data packet. In another example, when modeling a manufacturing plant, entities may take the form of individual items on the assembly line. Many DES models have at least one entity within the model.
Many entities also have events that are associated with or related to the entity. For example, many entities include timeout events that cause the entity to be processed in a particular manner upon expiration or cancellation of a timeout value (e.g., after a specified period of time has elapsed). Timeout functionality is associated with an entity being passed between blocks and can be scheduled or terminated upon occurrence of a start condition or an end condition, respectively. A start condition or an end condition can be, for example, an entity passing through a port, an entity entering a block or an entity exiting a block. The timeout functionality is configured to expire after a selected time period. After a timeout expires, the entity with the expired timeout may be sent for timeout processing.